package com.review.study;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

/**
 * 最近写了一个网络编程的小程序，即服务端与客户端相互发送信息即可。在其中发现了一些问题，
 * 就是在往IO流中写数据的问题。其中的write()方法，本身不会写入换行符，如果用write()写入了信息，
 * 在另一端如果用readLine()方法。由于读不到换行符，意味中读不到结束标记，然后由于IO流是阻塞式的，
 * 所以程序就是一直卡在那里不动了。原因即为缺少回车标识。如果在写入的时候加上“\r\n”,就可以解决这个问题了。
 * 而println()就自动加上了换行符了。
 */
public class SocketOperat2 {
    public static void main(String[] args) {
        Socket socket;


        try {
            socket = new Socket("127.0.0.1", 8099);
            OutputStream outputStream = socket.getOutputStream();
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream);
            PrintWriter printWriter = new PrintWriter(outputStreamWriter);
            System.out.println("请输入想对服务器说的话");
            Scanner scanner = new Scanner(System.in);
            printWriter.println(scanner.nextLine());
            socket.close();//去掉就出问题。
        } catch (IOException e) {
            e.printStackTrace();
        }


    }
}
